home *** CD-ROM | disk | FTP | other *** search
/ Delphi Magazine Collection 2001 / Delphi Magazine Collection 20001 (2001).iso / DISKS / Issue59 / Arch / Extended Sample / UnitFormListBase.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  2000-06-05  |  3.7 KB  |  142 lines

  1. unit UnitFormListBase;
  2. interface
  3.  
  4. uses
  5.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  6.   StdCtrls, ExtCtrls, Menus, Db, Grids, DBGrids, ActnList, ComCtrls, ToolWin,
  7.   ImgList, UnitObjectBase, Buttons, UnitFormBase, UnitFrameResultSetBase;
  8.  
  9. type
  10.   TFormListBase = class;
  11.   TFormListBaseClass = class of TFormListBase;
  12.   TListSelectEvent = procedure(aFormList: TFormListBase) of object;
  13.  
  14.   TFormListBase = class(TFormBase)
  15.     PanelListBaseBottom: TPanel;
  16.     ButtonOkApply: TButton;
  17.     ButtonCancelClose: TButton;
  18.     PopupMenu: TPopupMenu;
  19.     ActionList: TActionList;
  20.     ActionApply: TAction;
  21.     ActionClose: TAction;
  22.     Open1: TMenuItem;
  23.     PanelListBaseClientBackground: TPanel;
  24.     ActionFind: TAction;
  25.     Find1: TMenuItem;
  26.     ToolBar1: TToolBar;
  27.     PanelFilter: TPanel;
  28.     BitBtnFind: TBitBtn;
  29.     BitBtn2: TBitBtn;
  30.     ToolButton1: TToolButton;
  31.     ToolButton4: TToolButton;
  32.     PanelListBaseApplyClose: TPanel;
  33.     PanelListBaseGridBackground: TPanel;
  34.     StatusBarAbstract: TStatusBar;
  35.     ButtonListBaseApply: TButton;
  36.     ButtonListBaseClose: TButton;
  37.     ToolButton2: TToolButton;
  38.     ToolButton3: TToolButton;
  39.     ActionOpen: TAction;
  40.     procedure ActionApplyExecute(Sender: TObject);
  41.     procedure ActionFindExecute(Sender: TObject);
  42.     procedure ActionCloseExecute(Sender: TObject);
  43.     procedure ActionOpenExecute(Sender: TObject);
  44.     procedure ActionOpenUpdate(Sender: TObject);
  45.   private
  46.     FOnListSelect: TListSelectEvent;
  47.   protected
  48.     procedure Apply;
  49.     procedure Initializeform; override;
  50.     procedure ClearWhereClause; virtual; // abstract
  51.     function GetFrameResultSet: TFrameResultSetBase; virtual; abstract;
  52.   public
  53.     property OnListSelect: TListSelectEvent read FOnListSelect write FOnListSelect;
  54.     function ShowModalPickListOKCancel: integer;
  55.     function ShowModalPickListApplyClose: integer;
  56.   end;
  57.  
  58. implementation
  59.  
  60. {$R *.DFM}
  61.  
  62. var ClassVariableListOfSingletonLists: TList;
  63.  
  64. { TFormList }
  65.  
  66. procedure TFormListBase.Apply;
  67. begin
  68.   if Assigned(OnListSelect)
  69.     then OnListSelect(Self);
  70. end;
  71.  
  72. //------------------------------------------------------------------------------
  73. function TFormListBase.ShowModalPickListApplyClose: integer;
  74. begin
  75.   ActionApply.Caption := 'Apply';
  76.   ButtonOkApply.ModalResult := mrNone;
  77.   ButtonCancelClose.Caption := 'Close';
  78.   PanelListBaseBottom.Visible := TRUE;
  79.   StatusBarAbstract.SizeGrip := FALSE;
  80.   Result := Self.ShowModal;
  81. end;
  82.  
  83. function TFormListBase.ShowModalPickListOKCancel: integer;
  84. begin
  85.   ActionApply.Caption := 'OK';
  86.   ButtonOkApply.ModalResult := mrOK;
  87.   ButtonCancelClose.Caption := 'Cancel';
  88.   StatusBarAbstract.SizeGrip := FALSE;
  89.   PanelListBaseBottom.Visible := TRUE;
  90.   Result := Self.ShowModal;
  91. end;
  92. //------------------------------------------------------------------------------
  93.  
  94. procedure TFormListBase.ActionApplyExecute(Sender: TObject);
  95. begin
  96.   inherited;
  97.   Apply;
  98. end;
  99.  
  100. procedure TFormListBase.Initializeform;
  101. begin
  102.   inherited;
  103. end;
  104.  
  105. procedure TFormListBase.ActionFindExecute(Sender: TObject);
  106. begin
  107.   inherited;
  108.   GetFrameResultSet.ResultSetObject.RefreshResultSet;
  109. end;
  110.  
  111. procedure TFormListBase.ClearWhereClause;
  112. begin
  113. end;
  114.  
  115. procedure TFormListBase.ActionCloseExecute(Sender: TObject);
  116. begin
  117.   inherited;
  118.   ModalResult := mrCancel;
  119. end;
  120.  
  121. procedure TFormListBase.ActionOpenExecute(Sender: TObject);
  122. begin
  123.   inherited;
  124.   GetFrameResultSet.OpenEntityForm;
  125. end;
  126.  
  127. procedure TFormListBase.ActionOpenUpdate(Sender: TObject);
  128. begin
  129.   inherited;
  130.   ActionOpen.Enabled := not(GetFrameResultSet.ResultSetObject.IsEmpty);
  131. end;
  132.  
  133. initialization
  134.  
  135.   ClassVariableListOfSingletonLists := TList.Create;
  136.  
  137. finalization
  138.  
  139.   ClassVariableListOfSingletonLists.Free;
  140.  
  141. end.
  142.